package org.ydsw.data.manage.utils;

import org.apache.commons.lang3.StringUtils;

import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * String工具类<br>
 * @author admin
 */
public class UtilStrings {

    /**
     * 判断字符串是否为空
     * @param str
     * @return
     */
    public static boolean isNotEmpty(String str) {
        if (str != null && !"".equals(str.trim())) {
            return true;
        }
        return false;
    }

    /**
     * 处理空字符串
     * @param object
     * @return
     */
    public static String dealEmptyString(Object object){
        if(object !=null){
            return object.toString();
        }
        return "";
    }

    /**
     * 获取map对象里面的值，并转化成Sting类型
     * @param map
     * @param key
     * @return
     */
    public static String mapToStringByKey(Map<String, Object> map,String key){
        if(map.get(key) !=null){
            return map.get(key).toString();
        } else {
            return "";
        }
    }

    /**
     * 获取map对象里面的值，并转化成int类型
     * @param map
     * @param key
     * @return
     */
    public static int mapToIntByKey(Map<String, Object> map,String key){
        if(map.get(key) !=null){
            return Integer.parseInt(map.get(key).toString());
        } else {
            return 0;
        }
    }

    /**
     * 获取map对象里面的值，并转化成Long类型
     * @param map
     * @param key
     * @return
     */
    public static Long mapToLongByKey(Map<String, Object> map,String key){
        if(map.get(key) !=null){
            return Long.parseLong(map.get(key).toString());
        } else {
            return 0L;
        }
    }

    /**
     * 去掉空格换行制表符
     */
    public static String replaceBlank(String str) {
        if (StringUtils.isBlank(str)||"NULL".equals(StringUtils.trim(str))) {
            return StringUtils.EMPTY;
        }
        Pattern p = Pattern.compile("\\s*|\t|\r|\n");
        Matcher m = p.matcher(str);
        return m.replaceAll(StringUtils.EMPTY);
    }

    /**
     * 将"NULL"或"null"字符串转换成null
     *
     * @param s 要转换的字符串
     * @return 转换后的字符串
     */
    public static String detailNullString(String s) {
        if (Constant.NULL_STRING.equalsIgnoreCase(s) || StringUtils.isBlank(s)) {
            s = null;
        } else {
            s = replaceBlank(s);
        }
        return s;
    }

    /**
     * 强制将.com后缀邮箱变成.com.cn邮箱。
     * @param email
     * @return
     */
    public static String joinEmail(String email){
        if(email.contains(".cn")){
            return email;
        } else {
            return email.replace(".com",".com.cn");
        }
    }

}
